#ifndef __WAVE_H__
#define __WAVE_H__

#include <GL/gl.h>
#include <GL/glu.h>
#include "global.h"

/***************************************************
 * 水波的各种参数
 **************************************************/
extern GLfloat wave_diffuse[];
extern GLfloat wave_specular[];
extern GLfloat wave_shininess[];
extern GLfloat ctlPoints[ORDER * 2][ORDER * 2][3];
extern GLfloat ctlPoints1[ORDER * 2][ORDER * 2][3];
extern int du;             //判断渲染ctlPoints还是ctlPoints1
extern GLUnurbs* waveSur;
extern GLfloat knots[ORDER * 4];
extern int showPoint;

/***************************************************
 * 设置控制点
 **************************************************/
void makeCtlPoints(void);

/***************************************************
 * 设置关键点的uv值
 **************************************************/
void makeKnots(void);

/***************************************************
 * 水波纹初始化
 **************************************************/
void waveInit(void);

/***************************************************
 * 渲染水波纹的控制点
 **************************************************/
void drawClr(void);

/***************************************************
 * 用NURBS工具渲染水波纹
 **************************************************/
void drawWave(void);

/***************************************************
 * 用求值器的方式渲染水波纹
 **************************************************/
void drawWave1(void);

/***************************************************
 * 水波纹抖动
 **************************************************/
void moveWave(void);
#endif
